package com.learning.mybatis.mapper.resultmap.cascade.mapper;

import com.learning.mybatis.mapper.resultmap.cascade.entity.Address;
import com.learning.mybatis.mapper.resultmap.cascade.entity.User;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

/**
 * ClassName: IUserMapping
 * Description:
 * Date: 2020/7/22 9:56 【需求编号】
 *
 * @author Sam Sho
 * @version V1.0.0
 */
@Repository
public interface IUserMapper {

    /**
     * 1. 用 association 关联一对一（嵌套 Select 查询）
     *
     * @param id
     * @return
     */
    User selectAssociationSelect(@Param("id") int id);


    /**
     * 2. 【推荐】使用 association 关联一对一（嵌套结果映射）
     *
     * @param id
     * @return
     */
    User selectAssociation(@Param("id") int id);


    /**
     * 3. 使用 Collection 关联一对多（嵌套结果映射）
     *
     * @param id
     * @return
     */
    User selectCollection(@Param("id") int id);


    /**
     * 4. 鉴别器
     *
     * @param id
     * @return
     */
    User selectDiscriminator(@Param("id") int id);

}
